import math


# 1.编写函数 统计字符串'abcdddeca'中每个字母只出现一次的字符，
# 统计出的结果，请按照['b', 'e']的格式输出。
def fn():
    str1 = 'abcdddeca'
    l = []
    for i in str1:
        if str1.count(i) == 1:
            l.append(i)
    print(l)


fn()
# 2.编写程序 实现输出100以内质数的功能。
for i in range(2, 101):
    flag = True
    for j in range(2, i):
        if i % j == 0:
            flag = False
            break
    if flag:
        print(i, end=',')
print()
# 3.求三位水仙花数	(三位整数，其各位数字的三次方和等于该数本身)
for i in range(100, 1000):
    a = i % 10
    b = i // 10 % 10
    c = i // 100
    if a * a * a + b * b * b + c * c * c == i:
        print(i, end=',')
# 4.求最小公倍数
num1 = int(input('请输入一个数：'))
num2 = int(input('请输入一个数：'))
for i in range(max(num1, num2), num1 * num2 + 1):
    if i % num1 == 0 and i % num2 == 0:
        print(f'{num1},{num2}的最小公倍数为:{i}')
        break


# 5.求回文数	回文数是一个正向和逆向都相同的整数
def fn():
    num = input('请输入一串数：')
    new_num = num[::-1]
    return new_num == num


print(fn())


# 6.编写函数，统计字符串'abcdddecA'中每个字母出现的次数
# (字母忽略大小写，a和A看作是一个字母)，统计出的结果，
# 请按照{'a': 2, 'b': 1, 'c': 2, 'd': 3, 'e': 1}的格式输出。
def fn():
    str1 = 'abcdddecA'
    str2 = str1.lower()
    dir1 = {}
    for x in str2:
        dir1[x] = str2.count(x)
    print(dir1)


fn()
# 7.百钱买百鸡：一只公鸡值五钱，一只母鸡值三钱，三只小鸡值一钱，
# 现在要用百钱买百鸡，请问公鸡、母鸡、小鸡各多少只？
for a in range(21):
    for b in range(34):
        c = 100 - a - b
        if c % 3 == 0 and a * 5 + b * 3 + c // 3 == 100:
            print(f'公鸡有{a}只，母鸡有{b}只，小鸡有{c}只')


# 8.设计一个Circle(圆)类，在该类中包括属性radius(半径)，
# 还包括__init__(),get_perimeter()(求周长)和get_area()(求面积)共3个方法。
# 设计完成后，创建Circle类的对象求圆的周长和面积。
class Circle:
    def __init__(self, radius):
        self.radius = radius

    def get_perimrter(self):
        l = 2 * math.pi * self.radius
        print(f'周长为1{l}')

    def get_area(self):
        s = math.pi * self.radius * self.radius
        print(f'面积为{s}')


circle = Circle(2)
circle.get_area()
circle.get_perimrter()


# 9.设计一个Course(课程)类，该类中包括number(编号)，name(名称)，teacher(任课教师)，
# location(上课地点)共4个属性；还包括__init__()，show_info()(显示课程信息)共2个方法。
# 设计完成后，创建Course类的对象显示课程的信息。
class Course:
    def __init__(self, number, name, teacher, location):
        self.number = number
        self.name = name
        self.teacher = teacher
        self.location = location

    def show_info(self):
        print(f'课程编号为{self.number},课程名称为{self.name},任课教师为{self.teacher},上课地点为{self.location}')


course = Course('001', '英语', '小美', 'h203')
course.show_info()


# 10.设计一个表示动物的类：Animal，其内部有一个color(颜色)属性和call(叫)方法。
# 再设计一个Fish(鱼)类，该类中有tail(尾巴)和color属性，以及一个call(叫)方法。
# 要求：让Fish类继承自Animal类，重写__init__和call方法。
class Animal:
    def __init__(self, color):
        self.color = color

    def call(self):
        print('动物叫')

class Fish(Animal):
    def __init__(self, color, tail):
        super().__init__(color)
        self.tail = tail

    def call(self):
        super().call()
        print('鱼叫')


fish = Fish('金色', 3)
fish.call()
